#include <my_head.h>

int main(int argc, const char *argv[]){
    int fd[2];
    char buff[1024];
    int count = 0;
    if(-1 == pipe(fd))
        ERR_LOG("pipe error");
    // 创建子进程
    pid_t pid = 0;
    if(-1 == (pid = fork())){
        ERR_LOG("fork error");
    }else if(0 < pid){ // 父
        // 防止误操作 父进程关闭读端
        close(fd[0]);
        while(1){
            write(fd[1], buff, sizeof(buff));
            printf("已经写入了 %d k\n", ++count);
        }
        // 关闭写端
        close(fd[1]);
    }else if(0 == pid){ // 子
        // 防止误操作 子进程关闭读端
        close(fd[1]);
        sleep(5);
        while(1){
            read(fd[0], buff, sizeof(buff));
            printf("已经读走了 %d k\n", ++count);
            sleep(1);
        }
        // 关闭读端
        close(fd[0]);
    }

    return 0;
}